Skip to main content

Reverse words in a string

Given an input string s, reverse the order of the words.

A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space.

Return a string of the words in reverse order concatenated by a single space.

Note that s may contain leading or trailing spaces or multiple spaces between two words. The returned string should only have a single space separating the words. Do not include any extra spaces.

const reverseWords = (input) => {
let result = '';
let word = '';
let inWord = false;

for (let i = 0; i < input.length; i++) {
const char = input[i];

if (char !== ' ') {
word += char;
inWord = true;
} else if (inWord) {
if (result !== '') {
result = ' ' + result;
}
result = word + result;
word = '';
inWord = false;
}
}

if (inWord) {
if (result !== '') {
result = ' ' + result;
}
result = word + result;
}
return result;
}